import os
import shutil

import os

def find_tsv_files(root_dir):
    """
    递归遍历指定目录及其所有子目录，查找所有 .tsv 文件。
    
    参数:
    root_dir -- 根目录的路径
    """
    # 使用 os.walk 生成文件夹树中的文件名
    for folder, subfolders, files in os.walk(root_dir):
        # 遍历当前文件夹中的所有文件
        for file in files:
            # 检查文件扩展名是否为 .tsv
            if file.endswith('.tsv'):
                # 打印文件的完整路径
                print(os.path.join(folder, file))

# 指定要遍历的根目录
root_directory = './TCGA-BLCA'
# 调用函数
find_tsv_files(root_directory)

# 定义文件夹路径
tcga_folder = 'TCGA'  # 假设这是包含所有file id文件夹的父文件夹
# output_base = 'output'  # 这是最终存放文件夹的父文件夹/

# 读取samplesheet.tsv文件
sample_sheet_path = 'gdc_sample_sheet.2024-04-07.tsv'
with open(sample_sheet_path, 'r') as file:
    lines = file.readlines()

count =0
# 遍历
for line in lines:
    count+=1
    # 跳过标题行
    if count==1:
        continue
    # 分割每一行的数据
    parts = line.strip().split('\t')
    file_id = parts[0]  # 文件ID
    project_id = parts[4]  # 项目ID
    sample_type = parts[7]  # 样本类型
    # 构建源文件夹路径
    source_folder = os.path.join(tcga_folder, file_id)
    # 构建目标文件夹路径
    target_folder = os.path.join(project_id, sample_type)
    os.makedirs(target_folder, exist_ok=True)  # 确保目标文件夹存在
    # 移动文件夹
    shutil.move(source_folder, target_folder)
    print(f'Moved {source_folder} to {target_folder}')

print(count)